home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / man2html-2.0.2 / examples / manpage < prev    next >
Text File  |  1995-06-18  |  3KB  |  115 lines

  1. #!/usr/local/bin/perl
  2.  
  3. select(STDOUT) ;
  4. $| = 1 ;
  5.  
  6. &get_args ;
  7.  
  8. $arch       = $FORM{'architecture'} ;
  9. $section    = $FORM{'section'} ;
  10. $topic      = $FORM{'topic'} ;
  11. $filter     = "/usr/local/etc/httpd/htbin-post/man2html" ;
  12. $fflags     = "-title $topic -cgiurl http://hawkwind/htbin-post/manlink/architecture=$arch/section=\\\$section\\\$subsection/topic=\\\$title" ;
  13. $manflags   = "" ;
  14. $mancommand = "" ;
  15.  
  16.  
  17. if ($section =~ /Keyword/) {
  18.     $manflags = "-k" ;
  19.     $fflags  .= " -k " ;
  20. }
  21. elsif ($section =~ /Section (\d\w?)/) {
  22.     $manflags = $1 ;
  23. }
  24.  
  25. if ($arch eq "HP") {
  26.     $fflags .= " -leftm 1 -topm 8";
  27.     $mancommand   = "man $manflags $topic";
  28. }
  29. else {
  30.     # must be a CONVEX for now
  31.     # this relies on the server's ability to remsh to pixel and do a man
  32.     # this will/would break whenever we switch over to not running httpd 
  33.     # as harward, which we SHOULD do.
  34.     $mancommand = "remsh imagine man $manflags $topic" ;
  35. }
  36.  
  37. print "Content-type: text/html\n\n" ;
  38.  
  39. open (MAN, "$mancommand 2> /dev/null |") || exit 1 ;
  40. open (FILTER, "| $filter $fflags >/tmp/foo 2> /dev/null") || exit 1 ;
  41.  
  42. if (eof(MAN)) {
  43.    print "<HTML>\n" ;
  44.    print "<TITLE>Man Failure</TITLE>\n" ;
  45.    print "<H1>man failed</H1>\n" ;
  46.    print "This is probably indicative that the man page is not available.\n";
  47.    print "Nine times out of ten anyway.  Sorry.<P>" ;
  48.    close FILTER ;
  49.    close MAN ;
  50.    exit 1 ;
  51. }
  52.  
  53. while (<MAN>) {
  54.     print FILTER ;
  55. }
  56.  
  57. close FILTER ;
  58. close MAN ;
  59.  
  60. open (OUT, "/tmp/foo") || exit 1 ;
  61. while (<OUT>) { 
  62.   print ;
  63. }
  64. close OUT ;
  65.  
  66.  
  67. sub get_args {
  68.     $cl = shift(@ARGV);   # content length
  69.  
  70.     while (1) {
  71.         $l = getc(STDIN);
  72.         $cl-- ;
  73.         $pair .= $l unless ($l eq '&');
  74.         if ($l eq '&') {
  75.             $pair =~ tr/+/ / ;
  76.             ($name, $value) = split(/=/, $pair);
  77.             $FORM{$name} = $value ;
  78.             $pair = "" ;
  79.         }
  80.         if (!$cl) {
  81.            if ($pair) {
  82.                $pair =~ tr/+/ / ;
  83.                ($name, $value) = split(/=/, $pair);
  84.                $FORM{$name} = $value ;
  85.            }
  86.            return ;
  87.         }
  88.     }
  89. }
  90.  
  91.  
  92.  
  93. sub future_get_args {
  94.  
  95.    if ($ENV{'REQUEST_METHOD'} eq 'POST')
  96.    {                          
  97.        read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
  98.  
  99.        # Split the name-value pairs
  100.        @pairs = split(/&/, $buffer);
  101.  
  102.        foreach $pair (@pairs)
  103.        {
  104.            ($name, $value) = split(/=/, $pair);
  105.            $value =~ tr/+/ /;
  106.            $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
  107.  
  108.            print "Setting $name to $value<P>";
  109.  
  110.            $FORM{$name} = $value;
  111.        }
  112.    }
  113. }
  114.  
  115.